perm filename CSRDFS.LSP[MRS,LSP] blob
sn#710788 filedate 1983-05-12 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00003 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 Utility Functions and Macros from NWREP.TXT[AT,LGC]/4p
C00014 00003 New Reasoning Data Structures
C00032 ENDMK
C⊗;
; Utility Functions and Macros from NWREP.TXT[AT,LGC]/4p
(DECLARE (fasload struct fas dsk (mac lsp))
(mapex 't)
(setq defmacro-for-compiling nil)
(*lexpr CSR:UPDATE-R-GRAPH PUSH-REASONING-GRAPH PUSH-TASK-RECORD)
(special *ALL-BEL-LEVELS* *ALL-R-RULE-EXPERTS-LIST*
*ALL-R-HEURISTIC-EXPERTS-LIST* R-AGENDA -CONTEXT-
-CONTEXT:GLOBAL- -ALLWORLDS- -NATURE- -REALWORLD-
*BL-NEG-INDEX* YHπ-FLAG -EM:LINEL-
REAS-SPECS MAX-EFFORT CURRENT-TOTAL-EFFORT )
(fixnum -EM:LINEL-)
(SETQ *WRITE-DO-LIST*
'(SPACES DISPLAY POSPRINC GO TAB BREAK ERROR SETQ
COND DISPLAY-TRIAL-REPORT )
IBASE 10. BASE 10. ) )
(NCONC *WRITE-DO-LIST* '(COND DISPLAY-TRIAL-REPORT))
(SETQ *ALL-BEL-LEVELS*
'(CERTAIN DOUBTLESS VERY-LIKELY FAIRLY-LIKELY SOMEWHAT-LIKELY
LIKELY-AS-NOT SOMEWHAT-UNLIKELY FAIRLY-UNLIKELY
VERY-UNLIKELY MOST-UNLIKELY NEG-CERTAIN )
*BL-NEG-INDEX*
(NCONC (MAPCAR #'CONS *ALL-BEL-LEVELS* (REVERSE *ALL-BEL-LEVELS*))
'((INDETERMINATE . INDETERMINATE)) ) )
(DECLARE
(load '|nsublis.lsp|) ;; NOTE : This file contains up-to-date
;; copies of all *DEFUN definitions in both NWREP and DNET.
(DEFSTRUCT (LT-QUANTIFIER (TYPE HUNK) (CONC-NAME LT-))
Q-DEPENDENCIES Q-DETERMINER QSORT-EXPR Q-SCOPE )
(DEFSTRUCT (ROLELINK (TYPE TREE))
ROLEMARK ARGUMENT )
(DEFSTRUCT (PFC-FORMULA (TYPE TREE))
PFC-CONCEPT ROLELINKS )
; PFC-FORMULA => (pred rlnk1 rlnk2 ... rlnkn) or (func rlnk1 rlnk2 ... rlnkn)
; or (connective rlnk1 rlnk2 ... rlnkn)
(DEFMACRO HUNKQUANTP (LT-FORM)
`(AND (HUNKP ,LT-FORM)
(EQ 'DETERMINER (GET (LT-Q-DETERMINER ,LT-FORM) 'CATEGORY)) ) )
(DEFMACRO ANTECEDENT (LT-⊃-PROPO)
`(ARGUMENT (ASSQ 'ANTECEDENT (ROLELINKS ,LT-⊃-PROPO))) )
(DEFMACRO CONSEQUENT (LT-⊃-PROPO)
`(ARGUMENT (ASSQ 'CONSEQUENT (ROLELINKS ,LT-⊃-PROPO))) )
(DEFMACRO UQ-KERNEL-LT-TYPE (LT-QUANTIFIERFORM)
`(LT-TYPE (UQ-KERNEL ,LT-QUANTIFIERFORM)) )
(DEFMACRO SUBSET (LIST PREDICATE)
(SETQ PREDICATE (EVAL PREDICATE))
`(MAPCAN #'(LAMBDA (MEMBER)
(COND ((,PREDICATE MEMBER) (NCONS MEMBER))) )
,LIST ) )
; Definition of SUBSET for LISP-Machine:
; (DEFMACRO SUBSET (LIST PREDICATE)
; `(REM-IF-NOT ,PREDICATE ,LIST) )
(DEFMACRO CONSP (EXPR)
`(EQ (TYPEP ,EXPR) 'LIST) )
; TCONC adds an item onto the end of a list that is maintained via the
; cons-cell PTR. The list itself is (CAR PTR), while (CDR PTR) is (LAST list),
; the last cons of the list. To start such a list, PTR should be initialized
; to (NCONS NIL). TCONC returns the updated PTR. Thus, in order to
; "pass through" the item added, one may write (CADR (TCONC ... )).
(DEFUN TCONC (ADDITEM PTR)
(OR (CONSP PTR) (BREAK |TCONC - PTR not a CONS-cell!|))
(COND ((CDR PTR)
(RPLACD PTR (CDR (RPLACD (CDR PTR) (NCONS ADDITEM)))) )
(T (RPLACD PTR (CAR (RPLACA PTR (NCONS ADDITEM))))) ) )
(DEFUN NSUBLIS (A-LIST S-EXPR &aux SUBSTPAIR)
(COND ((CONSP S-EXPR)
(COND ((CONSP (CAR S-EXPR)) (NSUBLIS A-LIST (CAR S-EXPR)))
((SETQ SUBSTPAIR (ASSQ (CAR S-EXPR) A-LIST))
(RPLACA S-EXPR (CDR SUBSTPAIR)) ) )
(COND ((CONSP (CDR S-EXPR)) (NSUBLIS A-LIST (CDR S-EXPR)))
((SETQ SUBSTPAIR (ASSQ (CDR S-EXPR) A-LIST))
(RPLACD S-EXPR (CDR SUBSTPAIR)) ) )
S-EXPR )
((COND ((SETQ SUBSTPAIR (ASSQ S-EXPR A-LIST)) (CDR SUBSTPAIR))
(S-EXPR) )) ) )
(DEFMACRO SETF* (SETFORM VALUEFORM)
(LIST 'SETF SETFORM (NSUBLIS `((-*- . ,SETFORM)) VALUEFORM)) )
(DEFMACRO SOME (LIST PREDICATE . &opt:STEP-FUNCTION)
(SETF* PREDICATE (EVAL -*-))
(COND (&opt:STEP-FUNCTION (SETF* &opt:STEP-FUNCTION (EVAL -*-))))
`(DO ((LISTAIL ,LIST (,(COND (&opt:STEP-FUNCTION
(CAR &opt:STEP-FUNCTION) )
(T 'CDR) )
LISTAIL )))
((NULL LISTAIL) NIL)
(COND ((,PREDICATE (CAR LISTAIL)) (RETURN LISTAIL))) ) )
(DEFMACRO ALL (LIST PREDICATE . &opt:STEP-FUNCTION)
(SETF* PREDICATE (EVAL -*-))
(COND (&opt:STEP-FUNCTION (SETF* &opt:STEP-FUNCTION (EVAL -*-))))
`(DO ((LISTAIL ,LIST (,(COND (&opt:STEP-FUNCTION
(CAR &opt:STEP-FUNCTION) )
(T 'CDR) )
LISTAIL )))
((NULL LISTAIL) 'T)
(COND ((NOT (,PREDICATE (CAR LISTAIL))) (RETURN NIL))) ) )
(DEFMACRO COPYLIST (LIST)
`(APPEND ,LIST NIL) )
(DEFMACRO WRITE BODY
`(PROGN
,@(MAPCAN #'(LAMBDA (X)
(COND ((EQ X 'T) (NCONS '(TERPRI)))
((EQ X 'T*) (LIST '(TERPRI) '(SETQ CURRENTPOS 1)))
((ATOM X) (NCONS `(PRINC ,X)))
((CONSP X)
(COND ((MEMQ (CAR X) *WRITE-DO-LIST*)
(NCONS X) )
((EQ '1* (CAR X))
(NCONS `(PRIN1 ,(CDR X))) )
((EQ 'IF* (CAR X))
(NCONS `(LET ((VAL ,(CDR X)))
(COND (VAL (PRINC VAL))) )) )
(T (NCONS `(PRINC ,X))) ) ) ) )
BODY ) ) )
(DEFMACRO COPYLIST (LIST)
`(APPEND ,LIST NIL) )
(DEFMACRO RASSQ (KEY A-LIST)
`(DO ((A-TAIL ,A-LIST (CDR A-TAIL)))
((NULL A-TAIL))
(COND ((EQ (CDAR A-TAIL) ,KEY) (RETURN (CAR A-TAIL)))) ) )
; the 'Q' connotes "EQ" and "ASSQ"
(DEFMACRO A-Q-GET (A-LIST INDICATOR)
`(CDR (ASSQ ,INDICATOR ,A-LIST)) )
(DEFMACRO ATC-GET (GENL-PLIST INDICATOR)
`(LET ((GENL-PLIST ,GENL-PLIST))
(COND ((AND YHπ-FLAG (π-YH-UNITP GENL-PLIST))
(π-GET GENL-PLIST ,INDICATOR) )
(T (GET GENL-PLIST ,INDICATOR)) ) ) )
(DEFMACRO (NRML-FORMULA defmacro-for-compiling 't) (LT-FORM)
`(ATC-GET (NRML-ANL-YZE ,LT-FORM) 'LT-FORMULA) )
(DEFMACRO (NRML-ANL-YZE defmacro-for-compiling 't) (LT-FORM . AL-VARS-TAIL)
`(LET ((LT-FORM ,LT-FORM))
(COND ((ATOM LT-FORM) LT-FORM)
(T (LET ((AL-VARS ,(CAR AL-VARS-TAIL)))
(NORMALIZE-CMPD-CONCEPT
LT-FORM
(ANALYZE-CMPD-CONCEPT LT-FORM AL-VARS)
AL-VARS ) )) ) ) )
(DEFMACRO ISA-SUPERSORT-OF (SORT1 SORT2)
`(LET ((SORT1 ,SORT1)
(SORT2 ,SORT2) )
(OR (EQ SORT1 SORT2) (SUPERSORT* SORT1 SORT2)) ) )
(DEFMACRO ISA-QUANT-TERM (LT-FORM)
`(AND (CONSP ,LT-FORM)
(EQ 'QUANT-TERM (CAR ,LT-FORM)) ) )
(DEFMACRO UQ-KERNEL (LT-QUANTIFIERFORM)
`(DO ((CURR-SUB-EXPR ,LT-QUANTIFIERFORM (LT-Q-SCOPE CURR-SUB-EXPR)))
((NOT (HUNK-UQUANTP CURR-SUB-EXPR))
CURR-SUB-EXPR ) ) )
(DEFMACRO UQ-⊃-KERNEL (LT-QUANTIFIERFORM)
`(DO ((CURR-SUB-EXPR ,LT-QUANTIFIERFORM (LT-Q-SCOPE CURR-SUB-EXPR)))
((NOT (HUNK-UQUANTP CURR-SUB-EXPR))
(CONSEQUENT CURR-SUB-EXPR) ) ) )
) ;; end of DECLARE
; This is equivalent to the *DEFUN definition of (THE-OF:LT-QUANT . QSORT).
(DEFMACRO LT-QSORT (LT-QUANT)
`(LET* ((QSORTEXPR (LT-QSORT-EXPR ,LT-QUANT))
(ATOMICQSORTEXPR
(CASEQ (LT-TYPE QSORTEXPR)
(ATOMICPROPO QSORTEXPR)
(CONJ-PROPO (ARGUMENT (CAR (ROLELINKS QSORTEXPR)))) ) ) )
(COND ((EQ (PFC-CONCEPT ATOMICQSORTEXPR) 'CONCEPT)
(NORMALIZE-TERMSORTEXPR
(CONS '↑
(COND ((ARGUMENT (ASSQ 'OBJECT-CATEGORY*
(ROLELINKS ATOMICQSORTEXPR) )))
(T (TERMSORT
(ARGUMENT
(ASSQ 'OBJECT
(ROLELINKS ATOMICQSORTEXPR) ) ) )) ) ) ) )
(T (PFC-CONCEPT ATOMICQSORTEXPR)) )) )
; New Reasoning Data Structures
; (Inspired in part by consideration of RPG's REASON.8)
; Original Version: 5 Nov 1982
; Last Revised: 6 Dec 1982
; The proposed basic data structure for commonsense reasoning is a graph or
; network with complex propositional nodes (REASONING-PROPOSITION-NODEs), and
; complex labelled links (REASONING-CONSIDERATION-LINKs). The entire reasoning
; network is partitioned into two subsets, the TARGET-CORPUS, bounded on its
; unanchored side by the TARGET-FRONTIER, and the KNOWLEDGE-CORPUS, bounded on
; its unanchored side by the KNOWLEDGE-FRONTIER. Reasoning is essentially a
; knowledge-governed, bi-directional search for arguments both for and against
; the TARGET-PROPOS. The search proceeds forward from the KNOWLEDGE-BASIS and
; backward from the TARGET-PROPOS, until the two frontiers meet and become
; sufficiently connected.
(DEFSTRUCT (REASONING-GRAPH (CONC-NAME R-GRAPH-))
(RB-CONTEXT ()) ;; the reasoning background-context
(T-BASIS ()) ;; the set of ultimate target-rp-nodes
(T-FRONTIER ()) ;; target frontier
(T-DIRECTORY ()) ;; target directory
(K-BASIS ()) ;; knowledge basis - relevant premises previously known
(K-FRONTIER ()) ;; knowledge frontier
(K-DIRECTORY ()) ;; knowledge directory
(CONSID-LIST ()) ) ;; a list of all considerations
(DEFSTRUCT (RG-DIRECTORY-ENTRY (CONC-NAME RG-DIR-ENTRY-))
P-UNIT CONTEXT RP-NODE )
; This defstruct is used (but not defined) by senten.def[at,lgc], and by
; csrexp[at,lgc].
(DEFSTRUCT (BELIEF CONC-NAME)
(WT-CNTXT -REALWORLD-) ;; A world-time-context, which determines
;; part of the content of the belief.
(TYPE ()) ;; knowledge, hypothesis, assumption, etc.
(P-UNIT ()) ;; A property-list with FORMULA and
;; F-DESCRIPTS indicators.
(EPISTATUS ()) )
(DEFSTRUCT (QUERY CONC-NAME) ;; a belief-like construct for target propositions
(WT-CNTXT ()) ;; A world-time-context, which determines
;; part of the content of the query.
(TYPE 'QUERY)
(P-UNIT ()) ;; a property-list with FORMULA and
;; F-DESCRIPTS indicators.
(EPISTATUS (MAKE-EPISTATUS BEL-LEVEL 'INDETERMINATE
BEL-FIRMNESS () )) )
;; soon 'INDETERMINATE
(declare (cond ((and (boundp 'csreas-dfc-flag) csreas-dfc-flag)
(setq defmacro-for-compiling 't) )))
(DEFMACRO BELIEF-FORMULA (BELIEF)
`(GET (BELIEF-P-UNIT ,BELIEF) 'LT-FORMULA) )
(DEFMACRO RP-NODE-FORMULA (RP-NODE)
`(BELIEF-FORMULA (RP-NODE-CONTENT ,RP-NODE)) )
(DEFMACRO QUERY-FORMULA (QUERY)
`(GET (QUERY-P-UNIT ,QUERY) 'LT-FORMULA) )
(DEFMACRO BELIEF-DESCRIPTS (BELIEF)
`(GET (BELIEF-P-UNIT ,BELIEF) 'F-DESCRIPTS) )
(DEFMACRO QUERY-DESCRIPTS (QUERY)
`(GET (QUERY-P-UNIT ,QUERY) 'F-DESCRIPTS) )
(DEFMACRO BELIEF-BEL-LEVEL (BELIEF)
`(EPIST-BEL-LEVEL (BELIEF-EPISTATUS ,BELIEF)) )
(DEFMACRO QUERY-BEL-LEVEL (QUERY)
`(EPIST-BEL-LEVEL (QUERY-EPISTATUS ,QUERY)) )
(declare (setq defmacro-for-compiling ()))
; This defstruct is used (but not defined) by senten.def[at,lgc]
; and by csrexp[at,lgc].
(DEFSTRUCT (EPISTATUS (CONC-NAME EPIST-))
(BF-GROUNDS ()) ;; descriptions of the reasoning and learning
;; processes that underlie bel-firmness
(BEL-LEVEL ()) ;; level of belief or commitment
(BL-GROUNDS ()) ;; supporting considerations, etc.
(BEL-FIRMNESS ()) ) ;; firmness of belief or commitment
(DEFMACRO COPY-EPISTATUS (X)
`(MAKE-EPISTATUS BF-GROUNDS (EPIST-BF-GROUNDS ,X)
BEL-LEVEL (EPIST-BEL-LEVEL ,X)
BL-GROUNDS (EPIST-BL-GROUNDS ,X)
BEL-FIRMNESS (EPIST-BEL-FIRMNESS ,X) ) )
(DEFMACRO CSR:COPY-P-UNIT (P-UNIT)
`(LET ((COPY (NCONS '*P-UNIT*)))
(SETPLIST COPY (COPYLIST (PLIST ,P-UNIT)))
COPY ) )
(DEFMACRO CSR:COPY-BLF∨QRY (B∨Q-VAR)
`(MAKE-BELIEF WT-CNTXT (BELIEF-WT-CNTXT ,B∨Q-VAR)
TYPE (BELIEF-TYPE ,B∨Q-VAR)
P-UNIT (BELIEF-P-UNIT ,B∨Q-VAR) ;; all p-units are normalized
EPISTATUS (COPY-EPISTATUS (BELIEF-EPISTATUS ,B∨Q-VAR)) ) )
(declare (cond ((and (boundp 'csreas-dfc-flag) csreas-dfc-flag)
(setq defmacro-for-compiling 't) )))
; This macro assumes a call of the sort:
; (csr:create-lt-blf∨qry belief
; formula '(canary tweety)
; bel-level 'doubtless
; ... ;; more belief slots 'n' values
; wt-cntxt -real-world- )
; , where a value for the slot FORMULA must be specified.
(DEFMACRO CSR:CREATE-LT-BLF∨QRY ARGLIST
(LET ((MAKEFN (CASEQ (CAR ARGLIST) (QUERY 'MAKE-QUERY) (T 'MAKE-BELIEF)))
(LINFORMULA (GET ARGLIST 'FORMULA))
(ARG-P-LIST (CONS '*P-LIST* (APPEND (NTHCDR 3. ARGLIST) NIL)))
(EPIST-IV-LIST)
(BEL-CXT-VAL) )
(COND ((SETQ BEL-CXT-VAL (GET ARG-P-LIST 'WT-CNTXT))
(REMPROP ARG-P-LIST 'WT-CNTXT) ))
(SETQ EPIST-IV-LIST (CDR ARG-P-LIST))
`(LET ((P-UNIT (NRML-ANL-YZE-LINFORMULA ,LINFORMULA)))
(,MAKEFN TYPE ',(CAR ARGLIST)
P-UNIT P-UNIT
WT-CNTXT ,(COND (BEL-CXT-VAL) (T '-REALWORLD-))
,@(COND (EPIST-IV-LIST
`(EPISTATUS (MAKE-EPISTATUS ,@EPIST-IV-LIST)) )
(T NIL) ) ) ) ) )
(declare (setq defmacro-for-compiling ()))
(DEFSTRUCT (REASONING-TASK (CONC-NAME R-TASK-))
EFFORT PRIORITY DESCRIPTION R-EXPERT METHOD ARGUMENTS
(TRIAL-REPORT 'UNTRIED) )
(DEFSTRUCT (REASONING-PROPOSITION-NODE (CONC-NAME RP-NODE-))
(R-GRAPH ())
(TYPE ()) ;; either 'TARGET or 'KNOWLEDGE
(CONTENT ()) ;; a belief (knowledge) or query (target)
(RLVT-CONSIDS ()) ;; ReLeVanT CONSIDerations
(PART-CONSIDS ()) ;; CONSIDerations PARTicipated in
(NEGATION ()) ;; the rp-node of the negation
(TRAV-LIST ()) ) ;; for use by r-graph TRAVersal programs
;;; (INSTAN-STATUS ()) ;; current INSTANtiation-STATUS,
;;; ;; either 'SCHEMATIC or 'DETERMINATE
;;; (GOAL-RLVT-CONSIDS ()) ;; these have at least one GOAL-node
;;; (GOAL-PART-CONSIDS ()) ;; these have at least one GOAL-node
(DEFMACRO ISA-RP-NODE (RG-ITEM)
`(MEMQ (CAR ,RG-ITEM) '(TARGET KNOWLEDGE)) )
;;; NOTE: for the time being at least, INSTAN-STATUS is obselete (1 Dec 82).
; Rules of INSTAN-STATUS: rp-nodes are the primary carriers of this property,
; and are DETERMINATE iff their content is. A consid-link is DETERMINATE in
; a secondary sense if its conclusion and all of its premises are DETERMINATE.
; If all the prem-nodes of a consid-link are determinate, then its concl-node
; should also be determinate.
; this is a base-defstruct to be INCLUDEd in more specific defstructs
(DEFSTRUCT (REASONING-CONSIDERATION-LINK (CONC-NAME CONSID-))
(R-GRAPH ())
(TYPE 'ORDINARY-CONSID) ;; either ORDINARY-CONSID or NEGATION-CONSID
(RULE ()) ;; the governing epistemic rule
(PREM-NODES ()) ;; the premises
(CONCL-NODE ()) ;; the conclusion
(INHER-REL-STRENGTH ()) ;; inherent relative strength
(FORCE ()) ;; prima-facie in-situ epistatus for conclusion
(GOAL-NODES ()) ) ;; prem- or concl-nodes sought, but not yet found
;;; (TRAV-LIST ()) ;; a slot for use by r-graph TRAVersal programs
;;; (SCHEMA-NODES ()) ;; a list of all SCHEMAtic prem- or concl-nodes
;;; (SUPP-STATUS 'INDETERMINATE) ;; current SUPPort status,
;;; ;; either SUPPORT, NON-SUPPORT, or INDETERMINATE
(DEFMACRO ISA-CONSID (RG-ITEM)
`(MEMQ (CAR ,RG-ITEM) '(ORDINARY-CONSID NEGATION-CONSID)) )
(DEFSTRUCT (CONSIDERATION-FORCE (TYPE TREE) (CONC-NAME CNSD-FORCE-))
(INDICATOR 'IF-ALONE)
(VALUE ()) ) ;; either a Prima-Facie BEL-LEVEL for a conclusion,
(declare (cond ((and (boundp 'csreas-dfc-flag) csreas-dfc-flag)
(setq defmacro-for-compiling 't) )))
(DEFMACRO CREATE-ADVICE-CONSID (CF-VALUE)
`(MAKE-REASONING-CONSIDERATION-LINK
RULE 'USER-ADVICE
CONCL-NODE '***
FORCE (MAKE-CONSIDERATION-FORCE VALUE ,CF-VALUE) ) )
(declare (setq defmacro-for-compiling ()))
(DEFMACRO CSR:COPY-CONSID-FORCE (F)
`(MAKE-CONSIDERATION-FORCE
INDICATOR (CNSD-FORCE-INDICATOR ,F)
VALUE (CNSD-FORCE-VALUE ,F) ) )
(DEFSTRUCT (QMP-CONSID CONC-NAME (INCLUDE REASONING-CONSIDERATION-LINK
(RULE 'QUANTIFIED-MODUS-PONENS)
(INHER-REL-STRENGTH 'CERTAIN-AWPC) )))
;;; (Q-PREM-NODE ()) ;; mnemonic for: Quantified premise
;;; (S-PREM-NODE ()) ) ;; mnemonic for: Singular premise
(DEFSTRUCT (STAT-CONSID CONC-NAME (INCLUDE REASONING-CONSIDERATION-LINK
(RULE 'STATISTICAL-SYLLOGISM)
(INHER-REL-STRENGTH 'DOUBTLESS-AWPC) ))
(STAT-PREM-NODE ()) ;; mnemonic for: STATistical premise
(S-PREM-NODE ()) ) ;; mnemonic for: Singular premise
(DEFSTRUCT (NEG-CONSID CONC-NAME (INCLUDE REASONING-CONSIDERATION-LINK
(RULE 'NEGATION)
(INHER-REL-STRENGTH
'NEG-CERTAIN-AWPC ) ))
(N-PREM-NODE ()) ) ;; mnemonic for: Negation premise
;Some testing and demonstration code
;(setq c0 (make-reasoning-consideration-link premises 'premises
; conclusion 'conclusion
; rule 'rule
; root 'root ))
;(typep c0)
;(car c0)
;(consid-type c0)
;(consid-rule c0)
;(setq c1 (make-qmp-consid premises 'premises
; conclusion 'conclusion
; root 'root
; q-prem 'q-prem
; s-prem 's-prem ))
;(typep c1)
;(car c1)
;(consid-type c1)
;(consid-rule c1)
;(qmp-consid-rule c1) ;; note: causes undefined-function error
;(qmp-consid-q-prem c1)
;(qmp-consid-s-prem c1)
(DEFSTRUCT (DN-CONSID CONC-NAME (INCLUDE REASONING-CONSIDERATION-LINK
(RULE 'DEDUCTIVE-NECESSARY) )))
; do we need to include or summarize intermediate conclusions and rules?
;; CONSID-PREMISES contains the ultimate premises.
;; CONSID-CONCLUSION contains the final conclusion.
(DEFSTRUCT (CINF-CONSID CONC-NAME (INCLUDE REASONING-CONSIDERATION-LINK
(RULE 'CAUSAL-INFLUENCE) ))
(INF-LAWS ()) ; mnemonic for: LAW-of-causal-INFluence premiseS
(CC-PREMS ()) ) ;; mnemonic for: Causal-Condition PREMises
;; CONSID-CONCLUSION is a set of influence-conclusions
(DEFSTRUCT (CACT-CONSID CONC-NAME (INCLUDE REASONING-CONSIDERATION-LINK
(RULE 'CAUSAL-ACTION) ))
(AL-PREM ()) ;; mnemonic for: causal-Action-Law PREMise
(I-PREMS ()) ;; mnemonic for: Influence PREMiseS
(C-M-PREM ()) ) ;; mnemonic for: Completeness Meta-PREMise
(DEFSTRUCT (CAUS-CONSID CONC-NAME (INCLUDE REASONING-CONSIDERATION-LINK
(RULE 'CAUSAL-CONSEQUENCE) ))
(INF-LAWS ()) ; mnemonic for: LAW-of-causal-INFluence premiseS
(CC-PREMS ()) ;; mnemonic for: Causal-Condition PREMises
; do we need to include or summarize intermediate conclusions and rules?
(ACT-LAW ()) ;; mnemonic for: law of causal action
(C-PREM ()) ) ;; mnemonic for: Completeness meta-PREMise
(DEFSTRUCT (REASONING-EXPERT (CONC-NAME R-EXPERT-))
TYPE ;; either RULE-EXPERT or HEURISTIC-EXPERT
R∨H-NAME ;; either <rule-name> or <heuristic-name>
DESCRIPTION
FORWARD-METHOD
BACKWARD-METHOD
FM-PREDICATES
BM-PREDICATE ) ;; an applicability condition for BACKWARD-METHOD